From 4adc615b7ef73b0f14c1b2c5ee56e31b375ab448 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Thu, 8 Jun 2006 04:43:41 +0000 Subject: [PATCH] Add option name. --- trackfilter.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/trackfilter.c b/trackfilter.c index 00c7748ae..84ba3da41 100644 --- a/trackfilter.c +++ b/trackfilter.c @@ -29,6 +29,7 @@ 2005-10-04: Add filterdefs to hold protos for filter functions... (RJL) 2005-10-04: Fix range-check max. value; exit filter, if no more tracks left 2006-04-06: Add fix, course, and speed options + 2006-06-01: Add name option */ #include @@ -44,6 +45,7 @@ #define TRACKFILTER_SPLIT_OPTION "split" #define TRACKFILTER_TITLE_OPTION "title" #define TRACKFILTER_MERGE_OPTION "merge" +#define TRACKFILTER_NAME_OPTION "name" #define TRACKFILTER_STOP_OPTION "stop" #define TRACKFILTER_START_OPTION "start" #define TRACKFILTER_MOVE_OPTION "move" @@ -63,6 +65,7 @@ static char *opt_stop = NULL; static char *opt_fix = NULL; static char *opt_course = NULL; static char *opt_speed = NULL; +static char *opt_name = NULL; static arglist_t trackfilter_args[] = { @@ -77,6 +80,9 @@ arglist_t trackfilter_args[] = { {TRACKFILTER_MERGE_OPTION, &opt_merge, "Merge multiple tracks for the same way", NULL, ARGTYPE_STRING, ARG_NOMINMAX}, + {TRACKFILTER_NAME_OPTION, &opt_name, + "Use only track(s) where title matches given name", NULL, ARGTYPE_STRING, + ARG_NOMINMAX}, {TRACKFILTER_START_OPTION, &opt_start, "Use only track points after this timestamp", NULL, ARGTYPE_INT, ARG_NOMINMAX}, @@ -219,6 +225,16 @@ trackfilter_fill_track_list_cb(const route_head *track) /* callback for track_d return; } + if (opt_name != NULL) + { + if ((track->rte_name == NULL) || + (case_ignore_str_match(track->rte_name, opt_name) == 0)) + { + track_del_head((route_head *)track); + return; + } + } + track_list[track_ct].track = (route_head *)track; i = 0; @@ -791,6 +807,11 @@ trackfilter_process(void) opts = trackfilter_opt_count(); if (opts == 0) opts = -1; /* flag for do "pack" by default */ + if (opt_name != NULL) + { + if (--opts == 0) return; + } + if (opt_move != NULL) /* Correct timestamps before any other op */ { trackfilter_move(); -- 2.30.2